// 引入项目中全部的全局组件
import SvgIcon from './SvgIcon/index.vue';
import Pagination from './Pagination/index.vue';
import Category from './Category/index.vue';

// 引入element-plus提供的全部的图标组件
import * as ElementPlusIconsVue from '@element-plus/icons-vue';

// 全局组件对象
const allGlobalComponents = { SvgIcon, Pagination, Category };

// 对外暴露插件对象
export default {
  install(app: import('vue').App) {
    // 注册自定义的全局组件
    Object.keys(allGlobalComponents).forEach(key => {
      app.component(key, allGlobalComponents[key as keyof typeof allGlobalComponents]);
    });

    // 将element-plus提供的图标注册为全局组件
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
      app.component(key, component);
    }
  }
};